var request = createXMLHttpRequest();		//用户向服务器发起请求的XMLHttpRequest对象

/**
 * 向服务器发出收藏图片请求
 * @param pictureId 要收藏的图片id
 */
function addFavourite(pictureId)
{
	request.onreadystatechange = getAddFavouriteResponse;
	request.open("GET", "addFavourite.html?pid="+pictureId, true);
	request.send(null);
}

/**
 * 向服务器发出删除收藏
 * @param collectionId 要删除的收藏id
 */
function delFavourite(collectionId)
{
	request.onreadystatechange = getDelFavouriteResponse;
	request.open("GET", "delFavourite.html?cid=" + collectionId, true);
	request.send(null);
}

/**
 * 创建XMLHttpRequest对象（考虑到不同浏览器的兼容性问题）
 * @return 如果创建成功，返回XMLHttpRequest对象，否则抛出异常
 */
function createXMLHttpRequest()
{
	if(typeof XMLHttpRequest != "undefined")
	{
		return new XMLHttpRequest();
	}
	else if(typeof ActiveXObject != "undefined")
	{
		return new ActiveXObject("Microsoft.XMLHTTP");
	}
	else
	{
		throw new Error("XMLHttpRequest not supported");
	}
}

/**
 * 处理收藏图片请求的服务器响应的回调函数
 * 根据服务器的响应代码提示用户收藏结果
 */
function getAddFavouriteResponse()
{
	//已经完成请求
	if(request.readyState == 4)
	{
		//响应代码为201(created)
		if(request.status == 201)
		{
			alert("添加收藏成功");
			window.location.reload();
		}
		
		//响应代码409(conflict)
		if(request.status == 409)
		{
			alert("该图片已经收藏");
		}
		
		//响应代码403(forbidden)
		if(request.status == 403)
		{
			alert("您没有权限收藏该图片");
		}
	}
}

/**
 * 处理删除收藏请求的服务器响应的回调函数
 * 根据服务器的响应代码提示用户删除收藏的结果
 */
function getDelFavouriteResponse()
{
	//已经完成请求
	if(request.readyState == 4)
	{
		//响应代码为200(OK)
		if(request.status == 200)
		{
			alert("删除收藏成功");
			window.location.reload();
		}
		
		//响应代码404(not fount)
		if(request.status == 404)
		{
			alert("还没有收藏该图片");
		}
	}
}